Network-provided content, such as web pages which can include media content, videos, pictures, music, and the like, are typically served to end users via networked computer systems. End user requests for the network content are processed and the content is responsively provided over various network links. These networked computer systems can include origin or hosting servers which originally host network content, such as web servers for hosting a news website. However, these computer systems of individual content origins or hosts can become overloaded and slow due to frequent requests of content by end users.
Content delivery networks have been developed which add a layer of caching between original servers of the content providers and the end users. The content delivery networks typically have one or more cache nodes distributed across a large geographic region to provide faster and lower latency access to the content for the end users. When end users request content, such as a web page, which is handled through a cache node, the cache node is configured to respond to the end user requests instead of the origin servers. In this manner, a cache node can act as a proxy or cache for the content origin servers. Content of the origin servers can be cached into the cache nodes, and can be pre-cached in the cache nodes from origin servers when the content has not yet been cached.
To reach the network content, end user devices typically first resolve domain name information before requesting content from a particular cache node. Domain name resolution is typically handled by top-level domain name system (DNS) servers which may delegate resolution to additional subordinate DNS servers. These DNS servers translate user-facing domain names into numerical network addresses so that a request for content can be issued by an end user device for the content. However, the limited number and distribution of DNS servers can add latencies and slowdowns into the domain name resolution process as well as the entire content request process.
Overview
Systems, methods, apparatuses, and software for operating content delivery networks are provided herein. In one example, a method of operating a domain name translation node in a first point-of-presence of a content delivery network is presented. The method includes receiving a translation message issued by an end user device for translation of a domain name into a content network address, and processing the translation message to identify a network address of a node that transferred the translation message. The method also includes selecting the content network address based at least in part on correlations between network addresses and performance factors to direct the end user device to a target cache node at a point-of-presence different than the point-of-presence of the domain name translation node, and transferring a response message indicating the content network address which directs the end user device to the target cache node at the second point-of-presence.
In another example, a computer apparatus to operate a domain name translation node is provided. The computer apparatus includes processing instructions that direct the cache node, when executed by the cache node, to receive a translation message issued by an end user device for translation of a domain name into a content network address, process the translation message to identify a network address of a node that transferred the translation message, select the content network address based at least in part on correlations between network addresses and performance factors to direct the end user device to a target cache node at a second point-of-presence, and transfer a response message indicating the content network address which directs the end user device to the target cache node at the second point-of-presence. The computer apparatus also includes one or more non-transitory computer readable media that store the processing instructions.
In another example, a method of operating a content delivery network that caches content for delivery to end user devices using cache nodes distributed over a plurality of points-of-presence. The method includes, in a local DNS node associated with a first point-of-presence of the content delivery network serving a first geographic location, receiving a DNS query for translation of a domain name into a content network address, the DNS query issued by an end user device and delegated by a DNS server to the local DNS node. The method also includes, in the local DNS node, processing the DNS query to identify at least a network address of the DNS server, processing the network address of the recursive DNS server against a data structure comprising performance correlations between network address ranges and the plurality of points-of-presence to identify a selected content network address of a cache node associated with a target point-of-presence, and transferring a DNS response indicating the selected content network address of the cache node associated with the target point-of-presence. The method also includes, in the cache node associated with the target point-of-presence, receiving a content request directed to the selected content network address and responsively providing content for delivery to the end user device.